home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-12-05 | 3.3 KB | 182 lines | [TEXT/CWIE] |
- // ===========================================================================
- // CQCamPane.cp A pane using the newly created CQuickCam obj
- // ===========================================================================
- //
- // 12/2/95 Finsihed CQuickCam enought to try this out.
-
-
- #include "CQCamPane.h"
-
- #include <LStream.h>
- // ---------------------------------------------------------------------------
- // • Constant declarations
- // ---------------------------------------------------------------------------
-
- #pragma mark • Constructors/Destructors
- // ---------------------------------------------------------------------------
- // • CreateGraphPane
- // ---------------------------------------------------------------------------
- // Static constructor used in URegistrar
- CGrabPane*
- CGrabPane::CreateGrabPaneStream( LStream* inStream )
- {
- return (new CGrabPane(inStream) );
- }
-
-
- CGrabPane::CGrabPane( LStream* inStream )
- : LPane( inStream ), CQuickCam( printerPort, 1 )
- {
- grabPict = nil;
- }
-
- CGrabPane::CGrabPane( void ) : CQuickCam( printerPort, 1 )
- {
- grabPict = nil;
- }
-
- CGrabPane::~CGrabPane( void )
- {
- StopRepeating();
- if ( grabPict ) KillPicture( grabPict );
- }
-
- #pragma mark -
- #pragma mark • LPeriodical override
-
- void
- CGrabPane::SpendTime(const EventRecord &inMacEvent)
- {
-
- Rect paneFrame;
- CalcPortFrameRect( paneFrame );
-
- UpdateVideo();
- DrawVideo( (CGrafPtr)GetMacPort(), paneFrame );
- }
-
- #pragma mark -
- #pragma mark • LPane essentials
-
- void
- CGrabPane::DrawSelf()
- {
-
- Rect paneFrame;
- CalcPortFrameRect( paneFrame );
-
- // Set the videoFrame to an appropriate size.
- OptVideoRect( paneFrame );
-
- // UpdateVideo();
- // DrawVideo( (CGrafPtr)GetMacPort(), paneFrame );
- }
-
- void
- CGrabPane::ClickSelf(const SMouseDownEvent &inMouseDown)
- {
- Rect paneFrame;
-
- CalcPortFrameRect( paneFrame );
- ::InsetRect( &paneFrame, 30, 30 );
- for( int i = 20; --i; ) {// about 10 passes.
- SpotMeter( paneFrame );
- DrawSelf();
- }
-
- }
-
- void
- CGrabPane::EventMouseUp(const EventRecord &inMacEvent)
- {
- LPane::EventMouseUp( inMacEvent );
- // GrabPict();
- }
-
- //
- // Fire up the sequencer.
- void
- CGrabPane::FinishCreateSelf()
- {
- StartRepeating();
- }
-
- #define VDOnOff( s ) if ( s ) StartRepeating(); \
- else StopRepeating();
-
- void
- CGrabPane::EnableSelf()
- { VDOnOff( vdPlayThruOn ); }
-
- void
- CGrabPane::DisableSelf()
- { VDOnOff( vdPlayThruOff ); }
-
- void
- CGrabPane::ShowSelf()
- { VDOnOff( vdPlayThruOn ); }
-
- void
- CGrabPane::HideSelf()
- { VDOnOff( vdPlayThruOff ); }
-
- void
- CGrabPane::ActivateSelf()
- { VDOnOff( vdPlayThruOn ); }
-
- void
- CGrabPane::DeactivateSelf()
- { VDOnOff( vdPlayThruOff ); }
-
-
- #pragma mark -
- #pragma mark • Public methods
-
- void
- CGrabPane::RunCompressionDialog( void )
- {
- }
-
- void
- CGrabPane::RunGrabberDialog( void )
- {
- }
-
- #pragma mark -
- #pragma mark • Protected methods
- void
- CGrabPane::UpdateBuffer( void )
- {
- }
-
- void
- CGrabPane::DrawBuffer( void )
- {
- }
-
-
- #pragma mark -
- #pragma mark • Private Methods
-
- // This method adjusts the videoRectangle to be an appropriate size for the
- // pane size. The smaller the video rectangle the faster the update. No
- // reason to send data to a rectangle bigger than the pane.
- void
- CGrabPane::AdjustRectangles( void )
- {
-
- Rect paneFrame;
-
- CalcPortFrameRect( paneFrame );
- OptVideoRect( paneFrame );
- }
-
- void
- CGrabPane::AutoContrast( Rect& r )
- {
- Rect paneFrame;
-
- CalcPortFrameRect( paneFrame );
- SpotMeter( paneFrame );
- }
-